#ifndef MODEL_H
#define MODEL_H

#include "Include.h"
#include "DeviiMath.h"

namespace devii
{

class Model
{
public:
	Model();
	~Model();

	void setPosition(const float x, const float y, const float z);
	void setPosition(const float3& position);
	void setScale(const float x, const float y, const float z);
	void setScale(const float3& position);
	void setRotationX(const float x);
	void setRotationY(const float y);
	void setRotationZ(const float z);
	void setRotation(const float x, const float y, const float z);
	void setRotation(const float3& rotation);

	const float3 getPosition() const;
	const float3 getScale() const;
	const float3 getRotation() const;
	const float getRotationX() const;
	const float getRotationY() const;
	const float getRotationZ() const;

	void createWorld();
	const matrix getWorld() const;

	//virtual void prepare() = 0;
protected:
	float3 position;
	float3 scale;
	float3 rotation;
	matrix world;
};

}
#endif